/*
	Header file that contains all the function prototypes for the
	 LCD control functions used
*/
#ifndef INCLUSION_GUARD_LCD_CONTROLS_H
#define INCLUSION_GUARD_LCD_CONTROLS_H

#define LCD_DC              LATCbits.LATC7
#define LCD_RESET           LATCbits.LATC6
#define LCD_POWER           LATAbits.LATA7


#define LCD_COMMAND         0
#define LCD_DATA            1

#define MIN                 0
#define TMIN                1
#define HOUR                2
#define THOUR               3

#define CLEAR               0
#define DRAW                1


#define LCD_YADDR(Y)        (((Y) & 0x07) | 0x40)
#define LCD_XADDR(X)        (((X) & 0x7F) | 0x80)






void LCD_init(void);
void LCD_write(unsigned char write_type, unsigned char data);
void LCD_address(unsigned char x_addr, unsigned char y_addr);
void LCD_clear(void);
void LCD_clear_row(unsigned char row);
void LCD_partial_clear(unsigned char x_start, unsigned char x_stop, unsigned char y_start, unsigned char y_stop);
void LCD_char(char character);
void LCD_string(char string[]);
void LCD_splashscreen(void);
void LCD_draw_section(unsigned char data_array[1][3][16], unsigned char x_start, unsigned char x_stop, unsigned char y_start, unsigned char y_stop);
void LCD_current_time(unsigned char number, unsigned char position, unsigned char command);
void LCD_runtime_mins(unsigned char number, unsigned char position, unsigned char command);
void LCD_start_time(unsigned char number, unsigned char position, unsigned char command);
void LCD_clear_current_time(unsigned char position);
void LCD_am_pm(void);
void LCD_start_am_pm(void);
void LCD_draw_frame(void);


#endif